﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NetalBase.Base;
using NetalBase.Exceptions;

namespace RmProto.Automata.IA
{
	abstract class IAStateBase : StateBase<IAEventPoint, IADataPoint>, IA
	{
		#region IA Members

		public virtual void e_I_d(object data)
		{
			throw new NoTransitionException();
		}

		public virtual void e_I_f(Action<object> func)
		{
			throw new NoTransitionException();
		}

		public virtual void e_I_p(CRA.ICRA cr)
		{
			throw new NoTransitionException();
		}

		public virtual void e_I_fin(object result)
		{
			throw new NoTransitionException();
		}

		public virtual void e_I_e(string errorMessage)
		{
			throw new NoTransitionException();
		}

		public object Data { get { return DataPoint.Data; } }

		public Action<object> Func { get { return DataPoint.Func; } }

		#endregion
	}
}
